Operating system of Mobile devices run on Mobile OS's kernel such as Linux, Darwin, Window CE, etc. and hence uses the Mobile OS' security policies. For accessing certain API's (Application Programming Interface) requires “root” privileges which can be accessed by the super user “su” (root) context. Applications with “root” privilege are restricted in devices due to security threats. To enable only a particular application to run under “root” but without “super user” (root) privilege will avoid the risk of giving temporary super user access and giving way for any other harmful application to run with the “root” privileges.
Most Mobile OS allows running an application as “root” while the current user is not the “super user”. This is achieved by setting the SUID (Set User ID) file permission bit of an application. But before installing and accessing the application, we need a Key Exchange procedure.
With the growth of malicious applications or other fraudulent code (e.g., malware) targeted towards mobile devices, security of Mobile device is becoming progressively important. To connect to more than one type of wireless network (4G/3G/Wi-Fi), many mobile devices also include functionality in the mobile devices. For instance, a mobile device consists of a cellular wireless network (4G/3G) and a Wi-Fi wireless network. In this example, some applications on the mobile device (e.g., videoconference, Global Positioning System (GPS) applications, and virtual mobile management) may attach to the cellular network while other applications (e.g., web browsing, Short Message Service (SMS), multimedia streaming) may link to the Wi-Fi network. In some examples, without a user knowing which wireless network the applications are employing, the applications on a mobile device may access a wireless network.
These days, application software has become more complex. Application software that functions on this hardware becomes both more multifaceted and more diverse as computer hardware becomes more dominant, less costly, and more ubiquitous in electronic devices. Nevertheless, to adapt to new environments and provide additional functionality unlike hardware, software mechanisms tend to progress rapidly. This results in a condition in which installed software applications involve, or at least advantage from, continued monitoring and maintenance by skilled software experts familiar with the structure and instruments that make up the software. Even though the issue is more obvious in complex software applications such as security software, anti-virus software, and etc., for relatively simple applications that must increase or alter behavior to remain competitive, it still remains a substantial problem.
Furthermore, software reliability is becoming more significant. The cost of software downtime and poor performance has become more important as people count on software functionality for more business and personal activities. Both in terms of lost money and time, these costs are recognized.
By a business or other software user through the life cycle of a software application, the field of “software application management” includes a large number of activities. Presently, a business need is acknowledged and a software application that can fulfill that requirement is sought out. The business user normally purchases not only the application, but also associated services necessary to maintain the application such as remote control.
During an initial ineffective stage of application deployment, the business normally navigates the “learning curve” while users become familiar with the structures and restrictions of the application. The product is already close to the end of its life cycle and partial or wholesale upgrades must be considered, after the business often enters a phase where the application can be used professionally. For complex applications, the users may never entirely negotiate the learning curve. Therefore, a need occurs for more efficient placement of application software.